package ar.edu.utn.frba.tacs.warnes.services;

import static junit.framework.Assert.assertEquals;

import org.apache.cxf.jaxrs.client.WebClient;
import org.junit.Test;

import ar.edu.utn.frba.tacs.warnes.pojos.AutoPojo;
import ar.edu.utn.frba.tacs.warnes.pojos.PiezaPojo;
import ar.edu.utn.frba.tacs.warnes.pojos.PiezaPojoList;

/**
 * ACORDARSE DE LEVANTAR LA APP EN JETTY!!
 * 
 * @author Diego
 * 
 */
public class PiezasRestTestCase {

	@Test
	public void testPiezaPorId() {
		WebClient wc = WebClient
				.create("http://localhost:8080/mercadoWarnes/rest/piezas");
		PiezaPojo primero = wc.path("/id/1").get(PiezaPojo.class);
		wc.back(true);// Le saca el path que le acabo de agregar
		PiezaPojo segundo = wc.path("/id/2").get(PiezaPojo.class);
		wc.back(true);// Le saca el path que le acabo de agregar
		PiezaPojo tercero = wc.path("/descripcion/tercera")
				.get(PiezaPojo.class);

		assertEquals("primera", primero.getDescripcion());
		assertEquals("segunda", segundo.getDescripcion());
		assertEquals("tercera", tercero.getDescripcion());
	}

	@Test
	public void testPiezasList() {
		WebClient wc = WebClient
				.create("http://localhost:8080/mercadoWarnes/rest/piezas");
		PiezaPojoList piezas = wc.path("/piezas").get(PiezaPojoList.class);

		assertEquals(3, piezas.getPiezas().size());
	}

	@Test
	public void testPiezaDelete() {
		WebClient wc = WebClient
				.create("http://localhost:8080/mercadoWarnes/rest/piezas");
		wc.path("/borrar/tercera").delete();

		wc.back(true);// Le saca el path que le acabo de agregar
		PiezaPojoList piezas = wc.path("/piezas").get(PiezaPojoList.class);
		assertEquals(2, piezas.getPiezas().size());
	}

	@Test
	public void testPiezaPut() {
		WebClient wc = WebClient
				.create("http://localhost:8080/mercadoWarnes/rest/piezas");
		// PiezaPojo pojo = new
		// PiezaPojo(ContenedorWarnes.getInstance().creaUnPieza("pieza-123"));
		wc.path("/agregar/tercera").post(null);

		wc.back(true);// Le saca el path que le acabo de agregar
		PiezaPojoList piezas = wc.path("/piezas").get(PiezaPojoList.class);
		assertEquals(3, piezas.getPiezas().size());

		wc.back(true);// Le saca el path que le acabo de agregar
		PiezaPojo tercero = wc.path("/descripcion/tercera")
				.get(PiezaPojo.class);
		assertEquals("tercera", tercero.getDescripcion());
	}

	@Test
	public void testAutoDeLaPiezaPorId() {
		WebClient wc = WebClient
				.create("http://localhost:8080/mercadoWarnes/rest/piezas");
		AutoPojo auto = wc.path("/id/1/auto").get(AutoPojo.class);

		assertEquals("auto-789", auto.getPatente());
	}
}
